Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра автоматизованих систем управління
Курсова робота
з дисципліни: Технології об’єктно-орієнтованого програмування
на тему: "Пошук об'єктів в відео потоці із допомогою бібліотеки комп'ютерного бачення OpenCV"
Завдання на курсову роботу
Тема курсового проекту називається "Пошук об'єктів в відео потоці із допомогою бібліотеки комп'ютерного бачення OpenCV".
Даний завдання виконано із допомогою мови програмування С++, в середовищі програмування Visual Studio 2013. Вибрано такі інструменти розробки, тому що вони є безкоштовними для користування. С++ має повністю відкритий код, і при правильному підході відкриває більше можливостей у написанні коду ніж інші об'єктно-орієнтовані програмування. Visual Studio дозволяє легко і якісно підключити бібліотеки для використання.
С++ — мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Кросплатформність, широкій набір сторонніх бібліотек з відкритим кодом, дещо менша комерційна підтримка
Microsoft Visual Studio — серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми з графічним інтерфейсом, в тому числі з підтримкою технології Windows Form
Зміст
Вступ 4
1. Постановка задачі 6
2. Огляд літератури 7
2.1. Розпізнавання і детектування. 7
2.2.Чи можна за допомогою OpenCV ідентифікувати людини по обличчю? 7
2.3. OpenCV в ООП. 10
2.3.1. Простір імен в OpenCV 10
2.3.2. Автоматичне управління пам'яттю 10
2.3.3. Автоматичний розподіл вихідних даних. 11
2.3.4. Основні види пікселів. Обмежене використання шаблонів 11
2.3.5. InputArray і OutputArray. 12
2.3.6. Обробка помилок. 12
2.4. Основні модулі OpenCV 13
3. Системний аналіз та об’єктна модель задачі 15
4. Програмне рішення 17
5. Опис проведених експериментів. 18
Висновки 20
Список використаних джерел 21
Додатки 22
Вступ
OpenCV (Open Source Computer Vision Library, бібліотека комп'ютерного зору з відкритим вихідним кодом) - бібліотека алгоритмів комп'ютерного зору, обробки зображень та чисельних алгоритмів загального призначення з відкритим кодом. Реалізована на C / C ++, також розробляється для Python, Java, Ruby, Matlab, Lua та інших мов. Може вільно використовуватися в академічних та комерційних цілях - поширюється в умовах ліцензії BSD.
Використання:
Для затвердження загального стандартного інтерфейсу комп'ютерного зору для додатків у цій галузі. Для сприяння зростанню числа таких додатків і створення нових моделей використання PC.
Зробити платформи Intel привабливими для розробників таких додатків за рахунок додаткового прискорення OpenCV за допомогою Intel® Performance Libraries (Зараз включають IPP (низько-рівневі бібліотеки для обробки сигналів, зображень, а також медіа-кодеки) і MKL (спеціальна версія LAPACK і FFTPack)). OpenCV здатна автоматично виявляти присутність IPP і MKL і використовувати їх для прискорення обробки.
(Зауваження - для роботи OpenCV c IPP версії 5.3 необхідно завантажити з сайту Intel і підмінити файл cxswitcher.cpp - інакше IPP НЕ БУДЕ виявлятися)
Підтримувані платформи та інструменти:
Самі бібліотеки:
Microsoft Windows: компілятори Microsoft Visual C ++ (6.0, .NET 2003), Intel Compiler, Borland C ++, Mingw (GCC 3.x).
Windows RT: портований на ARM компанією Itseez [3]
Linux: GCC (2.9x, 3.x), Intel Compiler: «./configure-make-make install», RPM (spec файл включений в поставку)
Mac OS X: GCC (3.x, 4.x)
Android
iOS
Використовуються C і «полегшений» C ++. Прагма і умовна компіляція використовуються дуже обмежено.
Засоби GUI, захоплення відео:
Microsoft Windows: DirectShow, VfW, MIL, CMU1394
Linux: V4L2, DC1394, FFMPEG
Mac OS X: QuickTime
Документація: статичний HTML, PDF.
Задача розпізнавання образів — це задача віднесення вихідних даних до певного класу за допомогою виділення істотних озн...